using System;
using System.Reflection;
using System.Text;
using PropertyExpression.Common;

namespace PropertyExpression.PresentationCode.CodeGenerator
{
    internal interface IExtensionsGenerator
    {
        IOptionalResult<IOverloadedAndPrefixMethodsBuilder> BuildAttachedProperty(string propertyName, StringBuilder builder, MethodInfo methodInfo, Type parameterType, Type attachedMethodTargetType, FieldInfo fieldInfo);
        IOptionalResult<IOverloadedAndPrefixMethodsBuilder> BuildSimpleProperty(string propertyName, StringBuilder builder, FieldInfo fieldInfo, Type parameterType);
    }
}